<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      /*
        箭头函数和普通函数有什么区别？
          1. 箭头函数没有自己的this，它的this指向外层函数的this。普通函数的this看函数调用方式
          2. 箭头函数没有显示原型属性，不能被new调用。而普通函数有
          3. 箭头函数没有arguments。而普通函数有
            arguments：实参列表, 传递了多少个参数，arguments就有多少(伪数组)
            箭头函数想要获取所有参数，需要使用 ...运算符（三点运算符/扩展运算符）
          4. 箭头函数写法简洁，可以简写：如果参数只有一个，可以省略(), 如果语句只有一条，可以省略{}, 这条语句会作为函数返回值返回
      */

      function fn(a, b) {
        console.log(arguments);
      }

      fn(1, 2, 3, 4, 5);

      const fn1 = (...args) => {
        // console.log(arguments); // Uncaught ReferenceError: arguments is not defined
        console.log(args);
      };
      fn1(1, 2, 3, 4, 5);

      // 2. 箭头函数没有显示原型属性，不能被new调用。而普通函数有
      // const fn = () => {};
      // console.log(fn.prototype);
      // // Uncaught TypeError: fn is not a constructor
      // new fn();
    </script>
  </body>
</html>
